package com.dengyafei.service.impl;

import com.dengyafei.bean.ItemEntity;
import com.dengyafei.bean.ItemEntityExample;
import com.dengyafei.constant.RecommendConstant;
import com.dengyafei.domin.dto.QueryItemsDTO;
import com.dengyafei.domin.vo.ItemAddVO;
import com.dengyafei.domin.vo.QueryItemsVO;
import com.dengyafei.helper.BeanHelper;
import com.dengyafei.mapper.ItemEntityMapper;
import com.dengyafei.result.PageEntity;
import com.dengyafei.service.ItemService;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;

import java.util.List;

/**
 * @author 邓亚非
 */
@Service
public class ItemServiceImpl implements ItemService {

    @Autowired
    ItemEntityMapper itemEntityMapper;

    @Autowired
    ItemEntityExample itemEntityExample;

    /**
     * 根据条件查询分页
     *
     * @param queryItemsVO
     * @return
     */
    @Override
    public PageEntity<ItemEntity> queryAllItem(QueryItemsVO queryItemsVO) {
//        分页
        Page<Object> page = PageHelper.startPage(queryItemsVO.getCurrent(), queryItemsVO.getPageSize());
        QueryItemsDTO queryItemsDTO = BeanHelper.copyProperties(queryItemsVO, QueryItemsDTO.class);
        System.out.println("queryDTO:" + queryItemsDTO.getCondition());
        List<ItemEntity> itemEntities = itemEntityMapper.findAllItemByCondition(queryItemsDTO);
        PageEntity<ItemEntity> pageEntity = new PageEntity<>();
        pageEntity.setList(itemEntities);
        pageEntity.setCurrent(queryItemsVO.getCurrent());
        pageEntity.setPageSize(queryItemsVO.getPageSize());
        pageEntity.setPages(page.getPages());
        pageEntity.setTotalCounts(page.getTotal());
        System.out.println(page.getPageSize());
        System.out.println(page.getPageNum());
        return pageEntity;
    }

    /**
     * 添加一个物品
     *
     * @param itemAddVO
     * @return
     */
    @Override
    public Integer addOneItem(ItemAddVO itemAddVO) {
        ItemEntity itemEntity = BeanHelper.copyProperties(itemAddVO, ItemEntity.class);
        return itemEntityMapper.insert(itemEntity);
    }
}